Skip to content

fix(service-automation): align notify node form-descriptor strings with #7085 vocabulary - #7202

Merged
os-help merged 1 commit into
mainfrom
claude/issue-7112-notify-descriptor-drift
Aug 10, 2026
Merged

fix(service-automation): align notify node form-descriptor strings with #7085 vocabulary#7202
os-help merged 1 commit into
mainfrom
claude/issue-7112-notify-descriptor-drift

Conversation

@os-help

@os-help os-help commented Aug 10, 2026

Copy link
Copy Markdown
Collaborator

Fixes #7112

What

notify's hand-written configSchema (the Studio form descriptor) still said "Requires sourceId." / "Requires sourceObject." for the sourceObject/sourceId click-through pair. This is the same phantom-requirement defect #7085 fixed on the spec .describe() face (PR #7111): the schema deliberately accepts a half-specified pair, and the executor's resolveSource() drops it at execute time (object && id ? {...} : undefined) so the inbox never renders a dead link — "Requires ..." reads as gate-enforced requiredness that isn't real. This card is the same fix, on the Studio-form-author-facing string.

Why not caught by the reconciliation gate

builtin-node-form-zod-ledger.test.ts compares KEY SETS off .shape, not description strings, so the descriptor and the Zod schema can disagree in prose without tripping any gate — confirmed: it still passes with this change (string-only, no key/type/required change).

Change

String-only, two description values in one file (packages/services/service-automation/src/builtin/notify-node.ts:166,170). Mirrored the exact vocabulary PR #7111 landed in NotifyConfigSchema's .describe() (read from the merged diff, not paraphrased from memory), keeping the descriptor's extra "The inbox synthesizes a /{object}/{id} deep-link from these." sentence on sourceId since the suggested shape said to keep it if wanted.

sourceObject: 'Object name of the record the notification links to (writes sys_notification.source_object). Only takes effect together with sourceId — a half-specified click-through target is dropped at execute time, so the inbox never renders a dead link.'

sourceId: 'Record id the notification links to (writes sys_notification.source_id). Only takes effect together with sourceObject — a half-specified click-through target is dropped at execute time, so the inbox never renders a dead link. The inbox synthesizes a `/{object}/{id}` deep-link from these.'

Changeset

Added (@objectstack/service-automation: patch) — mirrors PR #7111's choice, which also shipped a changeset for its equivalent docs-only .describe() string alignment (@objectstack/spec: patch) rather than skip-changeset, since the string is user-visible (Studio form help text / generated docs table).

Verification

  • pnpm --filter '@objectstack/service-automation^...' build — dependency closure builds clean.
  • pnpm --filter @objectstack/service-automation build — tsup + DTS build clean (package has no separate typecheck script; DTS generation is its type-check surface).
  • pnpm --filter @objectstack/service-automation test72 test files / 885 tests passed, including builtin-node-form-zod-ledger.test.ts (key-set invariance unaffected, as expected for a string-only change).
  • npx eslint packages/services/service-automation/src/builtin/notify-node.ts --no-inline-config — clean, no output.
  • node scripts/check-nul-bytes.mjs — OK.
  • Diff scope confirmed: git diff --stat shows exactly notify-node.ts | 4 ++-- (2 insertions, 2 deletions) plus the new changeset file.

Generated by Claude Code

#7085 vocabulary

The notify node's hand-written configSchema (Studio form descriptor) still
said "Requires sourceId." / "Requires sourceObject." — the same phantom
requirement PR #7111 removed from NotifyConfigSchema's .describe() strings.
The schema deliberately accepts a half-specified pair; the executor drops it
at execute time so the inbox never renders a dead link. Mirror the settled
wording onto the form-descriptor face, string-only (no key/type/required
change).

Fixes #7112

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015fkdTyGmMD5s8ZtEifvuGy
@vercel

vercel Bot commented Aug 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
objectstack Ignored Ignored Aug 10, 2026 2:35am

Request Review

@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 1 package(s): @objectstack/service-automation.

3 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:

  • content/docs/automation/flows.mdx (via @objectstack/service-automation)
  • content/docs/kernel/services-checklist.mdx (via @objectstack/service-automation)
  • content/docs/plugins/packages.mdx (via @objectstack/service-automation)

2 release-owned page(s) also reference the affected code. These are read-only:

  • content/docs/releases/implementation-status.mdx (via @objectstack/service-automation)
  • content/docs/releases/v9.mdx (via @objectstack/service-automation)

content/docs/releases/ is RELEASE-OWNED (AGENTS.md "Documentation Guardrails"): release
notes are written centrally at release time, and a code PR that edits them is the exact PR
that guardrail exists to stop. They are still audited — read-only. If one of them is actually
wrong, file an issue or open a dedicated docs-only PR; do not edit it here.

Advisory only. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs origin/main → pass the list as args.docs.

@github-actions github-actions Bot added documentation Improvements or additions to documentation tooling labels Aug 10, 2026
@os-help
os-help marked this pull request as ready for review August 10, 2026 02:54
@os-help
os-help added this pull request to the merge queue Aug 10, 2026
Merged via the queue into main with commit ce15dc3 Aug 10, 2026
26 checks passed
@os-help
os-help deleted the claude/issue-7112-notify-descriptor-drift branch August 10, 2026 03:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/s tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

notify node form descriptor still says "Requires sourceId." / "Requires sourceObject." — the Studio form face of the #7085 describe drift

2 participants